home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-09-17 | 4.0 KB | 194 lines | [TEXT/MPS ] |
- //========================================================================================
- //
- // File: SLPoly.cpp
- // Release Version: $ ODF 2 $
- //
- // Copyright: (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
- //
- //========================================================================================
-
- #include "FWOS.hpp"
-
- #ifndef SLPOLY_H
- #include "SLPoly.h"
- #endif
-
- #ifndef PRPOLY_H
- #include "PRPoly.h"
- #endif
-
- #ifndef FWODEXCE_H
- #include "FWODExce.h"
- #endif
-
- #ifndef FWPOINT_H
- #include "FWPoint.h"
- #endif
-
- #ifndef FWSTRMRW_H
- #include "FWStrmRW.h"
- #endif
-
- #ifdef FW_BUILD_MAC
- #pragma segment FWGraphics_Polygon
- #endif
-
-
- // Creation
-
- FW_HPolygon SL_API FW_PrivPolygon_CreateFromPoints(
- long count,
- const FW_SPoint* points,
- FW_PlatformError* error)
- {
- FW_ERR_TRY
- {
- return FW_NEW(FW_CPrivPolygonRep, (count, points));
- }
- FW_ERR_CATCH
- return 0;
- }
-
- FW_HPolygon SL_API FW_PrivPolygon_Copy(FW_HPolygon poly, FW_PlatformError* error)
- {
- FW_ERR_TRY
- {
- return FW_NEW(FW_CPrivPolygonRep, (*poly));
- }
- FW_ERR_CATCH
- return 0;
- }
-
- // Reference counting
-
- void SL_API FW_PrivPolygon_Acquire(FW_HPolygon poly)
- {
- // No try block necessary - Do not throw
- poly->Acquire();
- }
-
- long SL_API FW_PrivPolygon_GetRefCount(FW_HPolygon poly)
- {
- // No try block necessary - Do not throw
- return poly->GetRefCount();
- }
-
- void SL_API FW_PrivPolygon_Release(FW_HPolygon poly)
- {
- // No try block necessary - Do not throw
- poly->Release();
- }
-
- // Geometric Operations
-
- void SL_API FW_PrivPolygon_Transform(FW_HPolygon poly, Environment *ev, ODTransform* transform)
- {
- FW_SOM_TRY
- {
- poly->Transform(ev, transform);
- }
- FW_SOM_CATCH
- }
-
- void SL_API FW_PrivPolygon_InverseTransform(FW_HPolygon poly, Environment *ev, ODTransform* transform)
- {
- FW_SOM_TRY
- {
- poly->InverseTransform(ev, transform);
- }
- FW_SOM_CATCH
- }
-
- FW_PlatformError SL_API FW_PrivPolygon_Move(FW_HPolygon poly, FW_Fixed deltaX, FW_Fixed deltaY)
- {
- // No try block necessary - Do not throw
- poly->Move(deltaX, deltaY);
- return FW_xNoError;
- }
-
- FW_PlatformError SL_API FW_PrivPolygon_MoveTo(FW_HPolygon poly, FW_Fixed x, FW_Fixed y)
- {
- // No try block necessary - Do not throw
- poly->MoveTo(x, y);
- return FW_xNoError;
- }
-
- FW_PlatformError SL_API FW_PrivPolygon_Inset(FW_HPolygon poly, FW_Fixed x, FW_Fixed y)
- {
- // No try block necessary - Do not throw
- poly->Inset(x, y);
- return FW_xNoError;
- }
-
- FW_PlatformError SL_API FW_PrivPolygon_GetBounds(FW_HPolygon poly, FW_SRect& rect)
- {
- // No try block necessary - Do not throw
- poly->GetBounds(rect);
- return FW_xNoError;
- }
-
- // Point access
-
- FW_PlatformError SL_API FW_PrivPolygon_SetPoints(
- FW_HPolygon poly,
- const FW_SPoint* points,
- long startIndex,
- long pointCount)
- {
- // No try block necessary - Do not throw
- poly->SetPoints(points, startIndex, pointCount);
- return FW_xNoError;
- }
-
- FW_PlatformError SL_API FW_PrivPolygon_GetPoints(
- FW_HPolygon poly,
- FW_SPoint* points,
- long startIndex,
- long pointCount)
- {
- // No try block necessary - Do not throw
- poly->GetPoints(points, startIndex, pointCount);
- return FW_xNoError;
- }
-
- long SL_API FW_PrivPolygon_GetCount(FW_HPolygon poly)
- {
- // No try block necessary - Do not throw
- return poly->GetCount();
- }
-
- FW_SPoint* SL_API FW_PrivPolygon_GetPointArray(FW_HPolygon poly)
- {
- // No try block necessary - Do not throw
- return poly->GetPoints();
- }
-
- FW_Boolean SL_API FW_PrivPolygon_IsEqual(FW_HPolygon poly, FW_HPolygon poly2)
- {
- // No try block necessary - Do not throw
- return poly->IsEqual(poly2);
- }
-
- // Streaming
-
- void SL_API FW_PrivPolygon_Write(FW_HPolygon poly, FW_HWritableStream hStream, FW_PlatformError* error)
- {
- FW_ERR_TRY
- {
- FW_CWritableStream stream(hStream);
- poly->Write(stream);
- }
- FW_ERR_CATCH
- }
-
- FW_HPolygon SL_API FW_PrivPolygon_Read(FW_HReadableStream hStream, FW_PlatformError* error)
- {
- FW_ERR_TRY
- {
- FW_CReadableStream stream(hStream);
- return FW_NEW(FW_CPrivPolygonRep, (stream));
- }
- FW_ERR_CATCH
- return 0;
- }
-